//package com.func.boom.config;
//
//import cn.hutool.core.collection.CollectionUtil;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import redis.clients.jedis.HostAndPort;
//import redis.clients.jedis.JedisCluster;
//import redis.clients.jedis.JedisPoolConfig;
//
//import java.util.Set;
//
//
///**
// * @author Yulei
// * @date 2020-08-18 10:32:37
// * @desc jedis配置
// */
//@Configuration
//public class JedisClusterConfig {
//
//    //集群节点
//    @Value("${spring.redis.cluster.nodes}")
//    private String nodes;
//    //密码
//    @Value("${spring.redis.password}")
//    private String password;
//    //超时时间
//    @Value("${spring.redis.timeout:60000}")
//    private int timeout;
//    //最大空闲数
//    @Value("${spring.redis.pool.max-idle:20}")
//    private int maxIdle;
//    //最小空闲数
//    @Value("${spring.redis.pool.min-idle:0}")
//    private int minIdle;
//    //连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
//    @Value("${spring.redis.pool.max-total:100}")
//    private int maxTotal;
//    //最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制
//    @Value("${spring.redis.pool.max-wait:-1}")
//    private long maxWait;
//    //表示读取数据超时时间
//    @Value("${spring.redis.so-timeout:10000}")
//    private int soTimeout;
//    //出现异常最大重试次数
//    @Value("${spring.redis.max-attempts:3}")
//    private int maxAttempts;
//
//    @Bean
//    public JedisCluster getJedisCluster() {
//        String[] cNodes = nodes.split(",");
//        Set<HostAndPort> nodes = CollectionUtil.newHashSet();
//        // 分割出集群节点
//        String[] hostAndPort;
//        for (String node : cNodes) {
//            hostAndPort = node.split(":");
//            nodes.add(new HostAndPort(hostAndPort[0], Integer.parseInt(hostAndPort[1])));
//        }
//
//        JedisPoolConfig config = new JedisPoolConfig();
//        config.setMaxIdle(maxIdle);
//        config.setMinIdle(minIdle);
//        config.setMaxTotal(maxTotal);
//        config.setMaxWaitMillis(maxWait);
//        return new JedisCluster(nodes, timeout, soTimeout, maxAttempts, password, config);
//    }
//
//}
